package com.wh.wisdomsite.xbox.common.reponse;

import com.wh.wisdomsite.xbox.common.error.MainError;
import com.wh.wisdomsite.xbox.common.error.SubErrorType;
import com.wh.wisdomsite.xbox.common.error.SubErrors;
import com.wh.wisdomsite.xbox.common.error.SubError;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Locale;


/***
 * 功能说明：服务超时错误响应类
 * @Package com.wh.wisdomsite.xbox.common.reponse
 * @author 谢泽鹏
 * @date 2016年11月07日 下午15:10
 * @Copyright 个人版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 * @version V1.0
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "error")
public class TimeoutErrorResponse extends ErrorResponse {

    private static final String ISP = "isp.";

    private static final String SERVICE_TIMEOUT = "-service-timeout";

    /**
     * 构造函数
     */
    public TimeoutErrorResponse() {

    }

    public TimeoutErrorResponse(String method, Locale locale, int timeout) {
        MainError mainError = SubErrors.getMainError(SubErrorType.ISP_SERVICE_TIMEOUT, locale);
        String errorCode = ISP + transform(method) + SERVICE_TIMEOUT;
        SubError subError = SubErrors.getSubError(errorCode, SubErrorType.ISP_SERVICE_TIMEOUT.value(), locale, mainError, timeout);
        //子错误设置到响应中
        getSubErrors().add(subError);
        //主错误设置到响应中
        setMainError(mainError);
    }
}
